package com.itheima.d8_interface_jdk8;
/*
    1、JDK8开始，接口中新增了哪些方法?
        默认方法：使用default修饰，使用实现类的对象调用。
        静态方法：static修饰，必须用当前接口名调用
        私有方法：private修饰，jdk9开始才有的，只能在接口内部被调用。
        注意 : 他们都会默认被public修饰。
    2、JDK8开始，接口中为啥要新增这些方法?
        增强了接口的能力，更便于项目的扩展和维护。

 */
public class Test {
    public static void main(String[] args) {
        AImpl a = new AImpl();
        a.test1();
        //默认，使用实现类的对象调用
        a.MoRen();
        //静态，接口名.方法名调用
        A.JingTai();
    }
}


interface A{
    void test1();
    void test2();
    void test3();
    void test4();
    //默认方法
    default void MoRen(){
        System.out.println("默认方法");
        SiYou();
    }

    //私有方法：只能在本类来调用
    private void SiYou(){
        System.out.println("私有方法");
    }

    //静态方法=类方法：通过类名.对象名调用
    static void JingTai(){
        System.out.println("静态方法");
    }

}
//如果功能拓展接口新增方法，按原来的子类需要再次进行重写，所以添加三种形式的方法



//接口实现类
 class AImpl implements A{

    @Override
    public void test1() {
        System.out.println("方法1");

    }

    @Override
    public void test2() {

    }

    @Override
    public void test3() {

    }

    @Override
    public void test4() {

    }
}